package com.lh0811.forge.pserv.basic.server.service;

import com.github.pagehelper.PageInfo;
import com.lh0811.forge.pserv.basic.server.repository.entity.CommConfig;
import com.lh0811.forge.pserv.basic.server.repository.entity.CommConfigType;
import com.lh0811.forge.pserv.basic.api.param.*;

import java.util.List;

public interface CommConfigService {
    /**
     * 获取配置信息
     */
    CommConfig getConfigValue(String configType, String configKey) throws Exception;

    /**
     * 配置类型查询(分页)
     */
    PageInfo<CommConfigType> configTypeQueryPage(CommConfigTypeQueryPageParam param) throws Exception;

    /**
     * 配置类型查询(不分页)
     */
    List<CommConfigType> configTypeQueryList(CommConfigTypeQueryListParam param) throws Exception;

    /**
     * 配置类型创建
     */
    void configTypeCreate(CommConfigTypeCreateParam param) throws Exception;

    /**
     * 配置类型更新
     */
    void configTypeUpdate(CommConfigTypeUpdateParam param) throws Exception;

    /**
     * 配置类型删除
     */
    void configTypeDelete(Long confTypeId) throws Exception;

    /**
     * 配置创建
     */
    void configCreate(CommConfigCreateParam param) throws Exception;

    /**
     * 配置删除
     */
    void configDelete(Long id) throws Exception;

    /**
     * 配置更新
     */
    void configUpdate(CommConfigUpdateParam param) throws Exception;

    /**
     * 配置列表查询(分页)
     */
    PageInfo<CommConfig> configQueryPage(CommConfigQueryPageParam param) throws Exception;

    /**
     * 配置列表查询(不分页)
     */
    List<CommConfig> configQueryList(CommConfigQueryListParam param) throws Exception;
}
